package com.fulihui.wgj.admin.integration;

import com.fulihui.common.result.web.PageView;
import com.fulihui.common.result.web.Result;
import com.fulihui.wgj.admin.api.material.vo.MaterialSingleVO;
import com.fulihui.wgj.admin.api.qrcode.excelmodel.QrcodeStatExcelModel;
import com.fulihui.wgj.admin.api.qrcode.request.*;
import com.fulihui.wgj.admin.api.qrcode.vo.QrcodeCreateVO;
import com.fulihui.wgj.admin.api.qrcode.vo.QrcodeLabelInfoVO;
import com.fulihui.wgj.admin.api.qrcode.vo.QrcodeStatDetailVO;
import com.fulihui.wgj.admin.api.qrcode.vo.QrcodeStatVO;

import java.util.List;

/**
 * @author: Levon
 * @date: 2018-07-09 14:13
 */
public interface ParamQrcodeServiceClient {

    /**
     * 创建参数二维码
     *
     * @param request
     * @return
     */
    Result<QrcodeCreateVO> saveParamQrcodeInfo(QrcodeCreateRequest request);

    /**
     * 查询分页
     *
     * @param request
     * @return
     */
    PageView<QrcodeStatVO> queryPage(QrcodeQueryRequest request);


    /**
     * 详情分页
     *
     * @param request
     * @return
     */
    PageView<QrcodeStatDetailVO> queryDetailPage(QrcodeQueryDetailRequest request);


    /**
     * 导出excel
     *
     * @param request
     * @return
     */
    List<QrcodeStatExcelModel> exportDetail(QrcodeExportDetailRequest request);

    /**
     * 查询回复素材
     *
     * @return
     */
    Result<MaterialSingleVO> queryReplyById(QrcodeReplyGetRequest replyGetRequest);


    /**
     * 参数二维码回复编辑请求
     *
     * @param replyEditRequest
     * @return
     */
    Result<Boolean> saveOrUpdate(QrcodeReplyEditRequest replyEditRequest);

    /**
     * 删除回复
     *
     * @param replyDelRequest
     * @return
     */
    Result<Boolean> delReply(QrcodeReplyDelRequest replyDelRequest);

    /**
     * 查询渠道二维码对应标签
     *
     * @param appId
     * @return
     */
    Result<List<QrcodeLabelInfoVO>> queryQrcodeLabel(String appId);

}
